const files=require.context(
    '@/components',
    true,
    /^\.\/(\w+\/)+index\.(vue|js)$/
)
//第一个检索的目录，第二个遍历的子目录，第三个匹配文件的正则
// console.log(files.keys())获取路径数组

export default {//插件形式。单独写成一个函数
    install (Vue){//获取组件
        files.keys().forEach((path)=>{
            //两个参数，一个是文件路径，一个是文件内容
            const fileType=this.fileType(path,files(path));
           if(fileType=='component'){
               this.useComponent(Vue,files(path))
           }else if(fileType=='componentGroup'){
            this.userComponentGroup(Vue,files(path))
           }else{
               this.useServeApi(Vue,files(path))
           }
        })
    },
    fileType(path,file){//判断文件类型
        if(path.lastIndexOf('.js')===-1){
            return 'component'
        }else{
            if(file.default.install){//api型组件
                return 'serveApi'
            }else{//组合式组件
                return 'componentGroup'
            }
        }
    },
    useComponent(Vue,file){//组建不同的注册方式
      //file获取文件内容
      const options=file.default
      const name=options.name
      Vue.component('Md'+name,options)
    },
    useServeApi(Vue,file){//组建不同的注册方式
       Vue.use(file.default)
    },
    userComponentGroup(Vue,file){//组建不同的注册方式
        const components=file.default;
        for(let key in components){
            const name=components[key].name;
            Vue.component('Md'+name,components[key])
        }
    }
}